1. Technical Field
The present invention relates in general to a system and method for tuning the TCP/IP acknowledgment for improved performance. In particular, the present invention relates to a system and method for reducing the number of acknowledgments needed, thus improving throughput and network traffic.
2. Description of the Related Art
The Internet protocols are a popular open-system (nonproprietary) protocol suite that can be used to communicate across any set of interconnected networks and are equally well suited for LAN and WAN communications. The Internet protocols consist of a suite of communication protocols, of which the two best known are the Transmission Control Protocol (TCP) and the Internet Protocol (IP). The Internet protocol suite not only includes lower-layer protocols (such as TCP and IP), but it also specifies common applications such as electronic mail, terminal emulation, and file transfer.
Internet protocols were first developed in the mid-1970s, when the Defense Advanced Research Projects Agency (DARPA) became interested in establishing a packet-switched network that would facilitate communication between dissimilar computer systems at research institutions. With the goal of heterogeneous connectivity in mind, DARPA funded research by Stanford University and Bolt, Beranek, and Newman (BBN). The result of this development effort was the Internet protocol suite, completed in the late 1970s.
The Transmission Control Protocol (TCP) uses acknowledgments sent by receivers to senders when packets arrive. While acknowledgments provide reliability, they increase network traffic and causes additional processing to be performed by the sender and the receiver. These challenges result in lower network throughput than if acknowledgments were significantly reduced. Coupled with this is vast improvement of network reliability since the development of the TCP and IP protocols. This is especially true on closed networks, such as LANs and Intranets, where the network components are maintained and controlled by a common support staff and where the component's are known to be reliable.
Various attempts have addressed reducing TCP acknowledgments with varying success. The slow start algorithm is used to initialize a congestion window size to an initial value, such as one packet, and then increase the congestion window size as acknowledgments are received. While the number of acknowledgments using the slow start algorithm is reduced, acknowledgments are still required on a per packet or group of packets basis. Additionally, the slow start algorithm may actually impact network performance over traditional approaches for short transfers as well as in transfers over long-delay channels, such as networks using satellite links.
In a sliding window algorithm, the sender sends packets (e.g., packets 1, 2, and 3) and sets a timer for each packet. The sender then tracks the timers against the corresponding acknowledgments. If a timeout condition occurs on any one of the packets, that packet is resent. However, delayed acknowledgment protocols have performance impacts and, in some situations, have been found to actually reduce network performance.
What is needed, therefore, is a system and method that does not require acknowledgments from the sender upon the receipt of each packet or group of packets but, instead, uses the client's advertised window size to determine when an acknowledgment is needed. Moreover, what is needed is a system and method used by a receiver to determine whether a particular sender is expecting acknowledgments on a per-packet basis or has implemented a minimal acknowledgment protocol.